# utils/logger.py
import logging
import os

def setup_logger(name: str, level: int = logging.INFO):
    """
    配置日志记录器，同时输出到控制台和项目目录下的 log 文件夹中的日志文件。

    Args:
        name (str): 日志记录器名称。
        level (int): 日志级别，默认为 INFO。
    """
    logger = logging.getLogger(name)
    logger.setLevel(level)

    # 创建日志格式
    formatter = logging.Formatter("%(asctime)s - %(levelname)s - %(message)s")

    # 添加控制台处理器
    console_handler = logging.StreamHandler()
    console_handler.setFormatter(formatter)
    logger.addHandler(console_handler)

    # 确保日志文件目录存在
    log_dir = "log"  # 日志文件夹路径
    os.makedirs(log_dir, exist_ok=True)  # 创建日志文件夹

    # 添加文件处理器
    log_file = os.path.join(log_dir, "app.log")  # 日志文件路径
    file_handler = logging.FileHandler(log_file, mode="a", encoding="utf-8")
    file_handler.setFormatter(formatter)
    logger.addHandler(file_handler)

    return logger